package com.wang.lotterysystem.dao.mapper;

import com.wang.lotterysystem.dao.dataobject.WinningRecordDO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface WinningRecordMapper {
    @Insert("<script>" +
            "insert into winning_record " +
            "(activity_id, activity_name, " +
            "prize_id, prize_name, prize_tier, " +
            "winner_id, winner_name, winner_email, winner_phone_number, winning_time) " +
            "values " +
            "<foreach collection = 'winningRecordDOList' item='item' index='index' separator=','>" +
            "(#{item.activityId},#{item.activityName}," +
            "#{item.prizeId},#{item.prizeName},#{item.prizeTier}," +
            "#{item.winnerId},#{item.winnerName},#{item.winnerEmail},#{item.winnerPhoneNumber},#{item.winningTime})" +
            "</foreach>" +
            "</script>")
    void insert(List<WinningRecordDO> winningRecordDOList);

    @Select("select count(1) from winning_record " +
            "where activity_id = #{activityId} and prize_id = #{prizeId}")
    int countByActivityIdAndPrizeId(Long activityId, Long prizeId);

    @Delete("delete from winning_record " +
            "where activity_id = #{activityId} and prize_id = #{prizeId}")
    void deleteRecords(Long activityId,Long prizeId);

    @Select("select * from winning_record where activity_id = #{activityId}")
    List<WinningRecordDO> selectByActivityId(Long activityId);

    @Select("<script>" +
            "select * from winning_record where activity_id = #{activityId} " +
            "<if test = \" prizeId != null \">" +
            "and prize_id = #{prizeId}" +
            "</if>" +
            "</script>")
    List<WinningRecordDO> selectByActivityIdAndPrizeId(Long activityId,Long prizeId);
}